﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Infra.Business;

namespace softpower.forms.ui
{
    public partial class frmPais : Form
    {
        private static frmPais frm = null;
        List<Infra.Entity.LOCPAIS> paises = null;

        public frmPais()
        {
            InitializeComponent();
        }

        public static frmPais Instancia()
        {
            if (frm == null || frm.IsDisposed)
            {
                frm = new frmPais();
            }
            return frm;
        }


        private void frmPais_Load(object sender, EventArgs e)
        {
            MostraGrig(); 
        }


        void MostraGrig()
        {
            paises = PaisBLL.Pesquisar(Convert.ToInt32("0" + txtCodPais.Text), txtNomePais.Text, txtNacionalidade.Text);
            grdPais.DataSource = paises;
        }


        private void limparPais()
        {
            txtCodPais.Text = string.Empty;
            txtNomePais.Text = string.Empty;
            txtNacionalidade.Text = string.Empty;
        }

        private void btnSalvar_Click(object sender, EventArgs e)
        {
            if (tabPagePais.CanFocus == true)
            {
                if (!String.IsNullOrEmpty(txtNomePais.Text))
                {
                    PaisBLL.Salvar(Convert.ToInt32("0" + txtCodPais.Text), txtNomePais.Text, txtNacionalidade.Text);
                    MessageBox.Show("País cadastrado com sucesso!");
                 
                    limparPais(); 
                    MostraGrig();
                }
                else
                    lblErroP.Text = "Campo obrigatório";
            }
        }



        private void btnAlterar_Click(object sender, EventArgs e)
        {
            if (tabPagePais.CanFocus == true)
            {
                PaisBLL.Salvar(Convert.ToInt32("0" + txtCodPais.Text), txtNomePais.Text, txtNacionalidade.Text);
                MessageBox.Show("País alterado com sucesso!", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                limparPais();
            }  
        }

        private void btnExcluir_Click(object sender, EventArgs e)
        {
            if (tabPagePais.CanFocus == true)
            {
                if (MessageBox.Show("A exclusão irá apagar permanentemente o país. Continuar?", "Confirmação",
                    MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    PaisBLL.Excluir(Convert.ToInt32("0" + txtCodPais.Text));
                    MessageBox.Show("O país foi excluido com sucesso.", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    limparPais();
                }
                else
                    MessageBox.Show("Operação cancelada!", "Info", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

        }

        private void btrnPesquisaCodPais_Click(object sender, EventArgs e)
        {
            List<Infra.Entity.LOCPAIS> paises = PaisBLL.Pesquisar(Convert.ToInt32("0" + txtCodPais.Text), txtNomePais.Text, txtNacionalidade.Text);
            grdPais.DataSource = paises;
            foreach (var ps in paises)
            {
                txtNomePais.Text = ps.STRPAIS;
                txtNacionalidade.Text = ps.STRNACIONALIDADE;
            }
        }

    
    }
}
